package server;


import dao.UserMapper;
import pojo.po.Role;
import pojo.po.User;
import pojo.vo.AddUser;
import pojo.vo.PageBean;
import pojo.vo.Result;
import utils.SqlSessionUtil;

import java.util.List;

public class UserServerImpl {

    public Result getUserList(PageBean pageBean) {
        UserMapper mapper = SqlSessionUtil.getSession().getMapper(UserMapper.class);
        pageBean.offset();
        List<User>  users =mapper.getUserList(pageBean);
        Integer sum =mapper.getSum(pageBean);
        Result result = new Result(true, "执行成功", users, sum);
        SqlSessionUtil.getSession().close();
        return result;
    }

    public void delete(String id) {
        UserMapper mapper = SqlSessionUtil.getSession().getMapper(UserMapper.class);
        mapper.constraintDelete(id);
        mapper.delete(id);
        SqlSessionUtil.getSession().close();
    }

    public List<Role> getRoleList() {
        UserMapper mapper = SqlSessionUtil.getSession().getMapper(UserMapper.class);
        List<Role> rolse =mapper.getRoleList();
        SqlSessionUtil.getSession().close();
        return rolse;
    }

    public void addUser(AddUser addUser) {
        UserMapper mapper = SqlSessionUtil.getSession().getMapper(UserMapper.class);
        mapper.addUser(addUser);
        addUser.getRoleIds().stream().forEach(i ->{
            mapper.addUser_Role(addUser.getId(),i);
        });
        SqlSessionUtil.getSession().close();
    }

    public void updata(AddUser addUser) {
        UserMapper mapper = SqlSessionUtil.getSession().getMapper(UserMapper.class);
        mapper.updata(addUser);
        //先删除再添加
        mapper.deleteUser_Role(addUser);
        addUser.getRoleIds().stream().forEach(i -> {
            mapper.addUser_Role(addUser.getId(),i);
        });
        SqlSessionUtil.getSession().close();
    }
}
